package com.weixue.dao;

import com.weixue.entity.GoodsCategory;
import com.weixue.utils.PageQueryUtil;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Day24
 *      分类管理Mapper接口
 */
public interface GoodsCategoryMapper {

    /**
     * 1.查询分页数据
     */
    List<GoodsCategory> findGoodsCategoryList(PageQueryUtil pageUtil);

    /**
     * 2.查询总数
     */
    int getTotalGoodsCategories(PageQueryUtil pageUtil);

    /**
     * 3.根据主键查询记录
     */
    GoodsCategory selectByPrimaryKey(Long categoryId);

    /**
     * 4.根据分类等级和分类名称查询一条分类记录
     */
    GoodsCategory selectByLevelAndName(@Param("categoryLevel") Byte categoryLevel, @Param("categoryName") String categoryName);

    /**
     * 5.根据父类分类id、分类等级和数量查询分类列表
     */
    List<GoodsCategory> selectByLevelAndParentIdsAndNumber(@Param("parentIds") List<Long> parentIds, @Param("categoryLevel") int categoryLevel, @Param("number") int number);

    /**
     * 6.删除一条记录
     */
    int deleteByPrimaryKey(Long categoryId);

    /**
     * 7.批量删除
     */
    int deleteBatch(Integer[] ids);

    /**
     * 8.保存一条新记录
     */
    int insert(GoodsCategory record);

    /**
     * 9.保存一条新记录
     */
    int insertSelective(GoodsCategory record);

    /**
     * 10.修改记录
     */
    int updateByPrimaryKeySelective(GoodsCategory record);

    /**
     * 11.修改记录
     */
    int updateByPrimaryKey(GoodsCategory record);

}